Methods and apparatus for control unit with a variable assist rotational interface and display

ABSTRACT

Provided is a method and system of processing rotational inputs to a control device having an electronic display and user interface, such as a programmable thermostat. Displayed on the electronic display is an initial display element selected from a sequence of display elements. In response to seeing such information, the user applies a rotational input applied to a rotational input device, such as a rotatable ring around the electronic display. A variable scroll assist engine determines an angular movement provided through the rotational input device and applies one or more heuristics to variably assist with a scrolling movement of a sequence of display elements. The variable scroll assist engine may reduce the rotational user input required to traverse an arbitrary number of display elements to as little as a quarter-revolution of the rotational input device in order that a user is better able to operate the control device.

CROSS-REFERENCE To RELATED APPLICATIONS

The subject matter of this patent specification relates to the subject matter of the following commonly assigned applications: U.S. Ser. No. 12/881,430 filed Sep. 14, 2010; U.S. Ser. No. 12/881,463 filed Sep. 14, 2010; U.S. Ser. No. 61/415,771 filed Nov. 19, 2010; U.S. Ser. No. 61/429,093 filed Dec. 31, 2010; U.S. Ser. No. 12/984,602 filed Jan. 4, 2011; U.S. Ser. No. 12/987,257 filed Jan. 10, 2011; U.S. Ser. No. 13/033,573 filed Feb. 23, 2011; U.S. Ser. No. 29/386,021, filed Feb. 23, 2011; U.S. Ser. No. 13/034,666, U.S. Ser. No. 13/034,674 and U.S. Ser. No. 13/034,678 filed Feb. 24, 2011; U.S. Ser. No. 13/038,191 filed Mar. 1, 2011; U.S. Ser. No. 13/038,206 filed Mar. 1, 2011; U.S. Ser. No. 29/399,609 filed Aug. 16, 2011; U.S. Ser. No. 29/399,614 filed Aug. 16, 2011; U.S. Ser. No. 29/399,617 filed Aug. 16, 2011; U.S. Ser. No. 29/399,618 filed Aug. 16, 2011; U.S. Ser. No. 29/399,621 filed Aug. 16, 2011; U.S. Ser. No. 29/399,623 filed Aug. 16, 2011; U.S. Ser. No. 29/399,625 filed Aug. 16, 2011; U.S. Ser. No. 29/399,627 filed Aug. 16, 2011; U.S. Ser. No. 29/399,630 filed Aug. 16, 2011; U.S. Ser. No. 29/399,632 filed Aug. 16, 2011; U.S. Ser. No. 29/399,633 filed Aug. 16, 2011; U.S. Ser. No. 29/399,636 filed Aug. 16, 2011; U.S. Ser. No. 29/399,637 filed Aug. 16, 2011; U.S. Ser. No. 13/199,108, filed Aug. 17, 2011; U.S. Ser. No. 13/267,871 filed Oct. 6, 2011; U.S. Ser. No. 13/267,877 filed Oct. 6, 2011; U.S. Ser. No. 13/269,501 filed Oct. 7, 2011; U.S. Ser. No. 29/404,096 filed Oct. 14, 2011; U.S. Ser. No. 29/404,097 filed Oct. 14, 2011; U.S. Ser. No. 29/404,098 filed Oct. 14, 2011; U.S. Ser. No. 29/404,099 filed Oct. 14, 2011; U.S. Ser. No. 29/404,101 filed Oct. 14, 2011; U.S. Ser. No. 29/404,103 filed Oct. 14, 2011; U.S. Ser. No. 29/404,104 filed Oct. 14, 2011; U.S. Ser. No. 29/404,105 filed Oct. 14, 2011; U.S. Ser. No. 13/275,311 filed Oct. 17, 2011; U.S. Ser. No. 13/275,307, filed Oct. 17, 2011; Attorney Docket 00162-000300000, filed Oct. 17, 2011 via Express Mail Receipt, EH 162375377 US entitled, “User Interfaces for Remote Management and Control of Network-Connected Thermostats”. Each of the above-referenced patent applications is incorporated by reference herein. The above-referenced patent applications are collectively referenced hereinbelow as “the commonly assigned incorporated applications.”

FIELD

This patent specification relates to systems, methods, and related computer program products for the monitoring and control of energy-consuming systems or other resource-consuming systems. More particularly, this patent specification relates to rotational input devices and user interfaces for control units that govern the operation of energy-consuming systems, household devices, or other resource-consuming systems, including user interfaces for thermostats that govern the operation of heating, ventilation, and air conditioning (HVAC) systems.

BACKGROUND

While substantial effort and attention continues toward the development of newer and more sustainable energy supplies, the conservation of energy by increased energy efficiency remains crucial to the world's energy future. According to an October 2010 report from the U.S. Department of Energy, heating and cooling account for 56% of the energy use in a typical U.S. home, making it the largest energy expense for most homes. Along with improvements in the physical plant associated with home heating and cooling (e.g., improved insulation, higher efficiency furnaces), substantial increases in energy efficiency can be achieved by better control and regulation of home heating and cooling equipment. By activating heating, ventilation, and air conditioning (HVAC) equipment for judiciously selected time intervals and carefully chosen operating levels, substantial energy can be saved while at the same time keeping the living space suitably comfortable for its occupants.

Historically, however, most known HVAC thermostatic control systems have tended to fall into one of two opposing categories, neither of which is believed be optimal in most practical home environments. In a first category are many simple, non-programmable home thermostats, each typically consisting of a single mechanical or electrical dial for setting a desired temperature and a single HEAT-FAN-OFF-AC switch. While being easy to use for even the most unsophisticated occupant, any energy-saving control activity, such as adjusting the nighttime temperature or turning off all heating/cooling just before departing the home, must be performed manually by the user. As such, substantial energy-saving opportunities are often missed for all but the most vigilant users. Moreover, more advanced energy-saving capabilities are not provided, such as the ability for the thermostat to be programmed for less energy-intensive temperature setpoints (“setback temperatures”) during planned intervals of non-occupancy, and for more comfortable temperature setpoints during planned intervals of occupancy.

In a second category, on the other hand, are many programmable thermostats, which have become more prevalent in recent years in view of Energy Star (US) and TCO (Europe) standards, and which have progressed considerably in the number of different settings for an HVAC system that can be individually manipulated. Unfortunately, however, users are often intimidated by a dizzying array of switches and controls laid out in various configurations on the face of the thermostat or behind a panel door on the thermostat, and seldom adjust the manufacturer defaults to optimize their own energy usage. Thus, even though the installed programmable thermostats in a large number of homes are technologically capable of operating the HVAC equipment with energy-saving profiles, it is often the case that only the one-size-fits-all manufacturer default profiles are ever implemented in a large number of homes. Indeed, in an unfortunately large number of cases, a home user may permanently operate the unit in a “temporary” or “hold” mode, manually manipulating the displayed set temperature as if the unit were a simple, non-programmable thermostat.

Proposals have been made for so-called self-programming thermostats, including a proposal for establishing learned setpoints based on patterns of recent manual user setpoint entries as discussed in US20080191045A1, and including a proposal for automatic computation of a setback schedule based on sensed occupancy patterns in the home as discussed in G. Gao and K. Whitehouse, “The Self-Programming Thermostat: Optimizing Setback Schedules Based on Home Occupancy Patterns,” Proceedings of the First ACM Workshop on Embedded Sensing Systems for Energy-Efficiency in Buildings, pp. 67-72, Association for Computing Machinery (November 2009). It has been found, however, that crucial and substantial issues arise when it comes to the practical integration of self-programming behaviors into mainstream residential and/or business use, issues that appear unaddressed and unresolved in such self-programming thermostat proposals. By way of example, just as there are many users who are intimidated by dizzying arrays of controls on user-programmable thermostats, there are also many users who would be equally uncomfortable with a thermostat that fails to give the user a sense of control and self-determination over their own comfort, or that otherwise fails to give confidence to the user that their wishes are indeed being properly accepted and carried out at the proper times. At a more general level, because of the fact that human beings must inevitably be involved, there is a tension that arises between (i) the amount of energy-saving sophistication that can be offered by an HVAC control system, and (ii) the extent to which that energy-saving sophistication can be put to practical, everyday use in a large number of homes. Similar issues arise in the context of multi-unit apartment buildings, hotels, retail stores, office buildings, industrial buildings, and more generally any living space or work space having one or more HVAC systems. It has been found that the user interface of a thermostat, which so often seems to be an afterthought in known commercially available products, represents a crucial link in the successful integration of self-programming thermostats into widespread residential and business use, and that even subtle visual and tactile cues can make an large difference in whether those efforts are successful.

Thus, it would be desirable to provide a thermostat having an improved user interface that is simple, intuitive, elegant, and easy to use such that the typical user is able to access many of the energy-saving and comfort-maintaining features, while at the same time not being overwhelmed by the choices presented.

SUMMARY

Provided according to one or more embodiments is method of processing rotational inputs to a control device having a an electronic display and user interface, such as a programmable thermostat, that controls the operation of one or more energy-consuming systems, household devices, or other resource-consuming systems, such as a heating, ventilation, and air conditioning (HVAC) system. Further provided are systems, methods, computer program products, and related business methods associated with the user interface and programmable device. For some embodiments, the programmable device is configured to carry out a method for interacting with a user thereof, the method includes displaying on the electronic display associated with the control device at least a portion of an initial display element selected from a sequence of display elements. In response to seeing such information, the user applies a rotational input applied to a rotational input device, such as a rotatable ring around the electronic display. A variable assist scroll engine receives this information and determines an angular movement as provided by the user through the rotational input device. In order to reduce the rotational input required by the user, the variable assist scroll engine applies one or more heuristics to variably assist with a scrolling movement of a sequence of display elements on the electronic display. Some embodiments may accelerate the scrolling of certain display elements on a display screen as a user operates a rotational input device. As a result, the variable assist scroll engine may reduce the rotational user input required to traverse an arbitrary number of display elements to as little as a quarter-revolution of the rotational input device in order that a user is better able to operate the control device and use the rotational input when navigating the user interface of a control device.

BRIEF DESCRIPTION OF THE DRAWINGS

The inventive body of work will be readily understood by referring to the following detailed description in conjunction with the accompanying drawings, in which:

FIG. 1 is a diagram of an enclosure in which environmental conditions are controlled, according to some embodiments;

FIG. 2 is a diagram of an HVAC system, according to some embodiments;

FIGS. 3A-3B illustrate a thermostat having a user-friendly interface, according to some embodiments;

FIG. 3C illustrates a cross-sectional view of a shell portion of a frame of the thermostat of FIGS. 3A-3B;

FIG. 4 illustrates a thermostat having a head unit and a backplate (or wall dock) for ease of installation, configuration and upgrading, according to some embodiments;

FIG. 5A illustrates thermostat and several exemplary natural and comfortable hand positions of a user manipulating the thermostat as presented through a user interface displayed on electronic display, according to some embodiments;

FIG. 5B illustrates a short menu from a user interface having two display elements and a long menu having eight display elements with wider spacing and multiple lines of data in accordance with some embodiments;

FIG. 6 illustrates a logical schematic diagram using a variable assist scroll engine to process user inputs on a control device such as a thermostat in accordance with some embodiments;

FIG. 7 is a schematic block diagram providing an overview of some components inside a thermostat in accordance with embodiments of the present invention;

FIG. 8 illustrates a flow chart diagram of the operations for processing rotational user inputs and the control of scrolling display elements in accordance with some embodiments;

FIGS. 9A-9D illustrate one application of the variable assist scroll engine to a circular menu of display elements in accordance with some embodiments;

FIG. 10 illustrates one application of a heuristic for affirmatively identifying a display element on a circular menu in accordance with some embodiments;

FIGS. 11A-11B illustrate another application of the variable assist scroll engine to a linear menu of display elements in accordance with some embodiments; and

FIGS. 12A-C illustrates further additional types of menus that have also benefitted from application of the variable assist scroll engine in accordance with some embodiments.

DETAILED DESCRIPTION

A detailed description of the inventive body of work is provided below. While several embodiments are described, it should be understood that the inventive body of work is not limited to any one embodiment, but instead encompasses numerous alternatives, modifications, and equivalents. In addition, while numerous specific details are set forth in the following description in order to provide a thorough understanding of the inventive body of work, some embodiments can be practiced without some or all of these details. Moreover, for the purpose of clarity, certain technical material that is known in the related art has not been described in detail in order to avoid unnecessarily obscuring the inventive body of work.

As used herein the term “HVAC” includes systems providing both heating and cooling, heating only, cooling only, as well as systems that provide other occupant comfort and/or conditioning functionality such as humidification, dehumidification and ventilation.

As used herein the terms power “harvesting,” “sharing” and “stealing” when referring to HVAC thermostats all refer to the thermostat are designed to derive power from the power transformer through the equipment load without using a direct or common wire source directly from the transformer.

As used herein the term “residential” when referring to an HVAC system means a type of HVAC system that is suitable to heat, cool and/or otherwise condition the interior of a building that is primarily used as a single family dwelling. An example of a cooling system that would be considered residential would have a cooling capacity of less than about 5 tons of refrigeration (1 ton of refrigeration=12,000 Btu/h).

As used herein the term “light commercial” when referring to an HVAC system means a type of HVAC system that is suitable to heat, cool and/or otherwise condition the interior of a building that is primarily used for commercial purposes, but is of a size and construction that a residential HVAC system is considered suitable. An example of a cooling system that would be considered residential would have a cooling capacity of less than about 5 tons of refrigeration.

As used herein the term “thermostat” means a device or system for regulating parameters such as temperature and/or humidity within at least a part of an enclosure. The term “thermostat” may include a control unit for a heating and/or cooling system or a component part of a heater or air conditioner. As used herein the term “thermostat” can also refer generally to a versatile sensing and control unit (VSCU unit) that is configured and adapted to provide sophisticated, customized, energy-saving HVAC control functionality while at the same time being visually appealing, non-intimidating, elegant to behold, and delightfully easy to use.

FIG. 1 is a diagram of an enclosure in which environmental conditions are controlled, according to some embodiments. Enclosure 100, in this example is a single-family dwelling. According to other embodiments, the enclosure can be, for example, a duplex, an apartment within an apartment building, a light commercial structure such as an office or retail store, or a structure or enclosure that is a combination of the above. Thermostat 110 controls HVAC system 120 as will be described in further detail below. According to some embodiments, the HVAC system 120 is has a cooling capacity less than about 5 tons. According to some embodiments, a remote device 112 wirelessly communicates with the thermostat 110 and can be used to display information to a user and to receive user input from the remote location of the device 112. Although many of the embodiments are described herein as being carried out by a thermostat such as thermostat 110, according to some embodiments, the same or similar techniques are employed using a remote device such as device 112.

FIG. 2 is a diagram of an HVAC system, according to some embodiments. HVAC system 120 provides heating, cooling, ventilation, and/or air handling for the enclosure, such as a single-family home 100 depicted in FIG. 1. The system 120 depicts a forced air type heating system, although according to other embodiments, other types of systems could be used. In heating, heating coils or elements 242 within air handler 240 provide a source of heat using electricity or gas via line 236. Cool air is drawn from the enclosure via return air duct 246 through filter 270, using fan 238 and is heated heating coils or elements 242. The heated air flows back into the enclosure at one or more locations via supply air duct system 252 and supply air grills such as grill 250. In cooling, an outside compressor 230 passes gas such a Freon through a set of heat exchanger coils to cool the gas. The gas then goes to the cooling coils 234 in the air handlers 240 where it expands, cools and cools the air being circulated through the enclosure via fan 238. According to some embodiments a humidifier 254 is also provided. Although not shown in FIG. 2, according to some embodiments the HVAC system has other known functionality such as venting air to and from the outside, and one or more dampers to control airflow within the duct systems. The system is controlled by control electronics 212 whose operation is governed by a thermostat such as the thermostat 110. Thermostat 110 controls the HVAC system 120 through a number of control circuits. Thermostat 110 also includes a processing system 260 such as a microprocessor that is adapted and programmed to controlling the HVAC system and to carry out the techniques described in detail herein.

FIGS. 3A-B illustrate a thermostat having a user-friendly interface, according to some embodiments. Unlike many prior art thermostats, thermostat 300 preferably has a sleek, simple, uncluttered and elegant design that does not detract from home decoration, and indeed can serve as a visually pleasing centerpiece for the immediate location in which it is installed. Moreover, user interaction with thermostat 300 is facilitated and greatly enhanced over known conventional thermostats by the design of thermostat 300. The thermostat 300 includes control circuitry and is electrically connected to an HVAC system, such as is shown with thermostat 110 in FIGS. 1 and 2. Thermostat 300 is wall mounted, is circular in shape, and has an outer rotatable ring 312 for receiving user input. Thermostat 300 is circular in shape in that it appears as a generally disk-like circular object when mounted on the wall. Thermostat 300 has a large front face lying inside the outer ring 312. According to some embodiments, thermostat 300 is approximately 80 mm in diameter. The outer rotatable ring 312 allows the user to make adjustments, such as selecting a new target temperature. For example, by rotating the outer ring 312 clockwise, the target temperature can be increased, and by rotating the outer ring 312 counter-clockwise, the target temperature can be decreased. The front face of the thermostat 300 comprises a clear cover 314 that according to some embodiments is polycarbonate, and a metallic portion 324 preferably having a number of slots formed therein as shown. According to some embodiments, the surface of cover 314 and metallic portion 324 form a common outward arc or spherical shape gently arcing outward, and this gentle arcing shape is continued by the outer ring 312.

Although being formed from a single lens-like piece of material such as polycarbonate, the cover 314 has two different regions or portions including an outer portion 314 o and a central portion 314 i. According to some embodiments, the cover 314 is painted or smoked around the outer portion 314 o, but leaves the central portion 314 i visibly clear so as to facilitate viewing of an electronic display 316 disposed thereunderneath. According to some embodiments, the curved cover 314 acts as a lens that tends to magnify the information being displayed in electronic display 316 to users. According to some embodiments the central electronic display 316 is a dot-matrix layout (individually addressable) such that arbitrary shapes can be generated, rather than being a segmented layout. According to some embodiments, a combination of dot-matrix layout and segmented layout is employed. According to some embodiments, central display 316 is a backlit color liquid crystal display (LCD). An example of information displayed on the electronic display 316 is illustrated in FIG. 3A, and includes central numerals 320 that are representative of a current setpoint temperature. According to some embodiments, metallic portion 324 has number of slot-like openings so as to facilitate the use of a passive infrared motion sensor 330 mounted therebeneath. The metallic portion 324 can alternatively be termed a metallic front grille portion. Further description of the metallic portion/front grille portion is provided in the commonly assigned U.S. Ser. No. 13/199,108, supra. The thermostat 300 is preferably constructed such that the electronic display 316 is at a fixed orientation and does not rotate with the outer ring 312, so that the electronic display 316 remains easily read by the user. For some embodiments, the cover 314 and metallic portion 324 also remain at a fixed orientation and do not rotate with the outer ring 312. According to one embodiment in which the diameter of the thermostat 300 is about 80 mm, the diameter of the electronic display 316 is about 45 mm. According to some embodiments an LED indicator 380 is positioned beneath portion 324 to act as a low-power-consuming indicator of certain status conditions. For, example the LED indicator 380 can be used to display blinking red when a rechargeable battery of the thermostat (see FIG. 4A, infra) is very low and is being recharged. More generally, the LED indicator 380 can be used for communicating one or more status codes or error codes by virtue of red color, green color, various combinations of red and green, various different blinking rates, and so forth, which can be useful for troubleshooting purposes.

Motion sensing as well as other techniques can be use used in the detection and/or predict of occupancy, as is described further in the commonly assigned U.S. Ser. No. 12/881,430, supra. According to some embodiments, occupancy information is used in generating an effective and efficient scheduled program. Preferably, an active proximity sensor 370A is provided to detect an approaching user by infrared light reflection, and an ambient light sensor 370B is provided to sense visible light. The proximity sensor 370A can be used to detect proximity in the range of about one meter so that the thermostat 300 can initiate “waking up” when the user is approaching the thermostat and prior to the user touching the thermostat. Such use of proximity sensing is useful for enhancing the user experience by being “ready” for interaction as soon as, or very soon after the user is ready to interact with the thermostat. Further, the wake-up-on-proximity functionality also allows for energy savings within the thermostat by “sleeping” when no user interaction is taking place our about to take place. The ambient light sensor 370B can be used for a variety of intelligence-gathering purposes, such as for facilitating confirmation of occupancy when sharp rising or falling edges are detected (because it is likely that there are occupants who are turning the lights on and off), and such as for detecting long term (e.g., 24-hour) patterns of ambient light intensity for confirming and/or automatically establishing the time of day.

According to some embodiments, for the combined purposes of inspiring user confidence and further promoting visual and functional elegance, the thermostat 300 is controlled by only two types of user input, the first being a rotation of the outer ring 312 as shown in FIG. 3A (referenced hereafter as a “rotate ring” or “ring rotation” input), and the second being an inward push on an outer cap 308 (see FIG. 3B) until an audible and/or tactile “click” occurs (referenced hereafter as an “inward click” or simply “click” input). For the embodiment of FIGS. 3A-3B, the outer cap 308 is an assembly that includes all of the outer ring 312, cover 314, electronic display 316, and metallic portion 324. When pressed inwardly by the user, the outer cap 308 travels inwardly by a small amount, such as 0.5 mm, against an interior metallic dome switch (not shown), and then springably travels back outwardly by that same amount when the inward pressure is released, providing a satisfying tactile “click” sensation to the user's hand, along with a corresponding gentle audible clicking sound. Thus, for the embodiment of FIGS. 3A-3B, an inward click can be achieved by direct pressing on the outer ring 312 itself, or by indirect pressing of the outer ring by virtue of providing inward pressure on the cover 314, metallic portion 314, or by various combinations thereof. For other embodiments, the thermostat 300 can be mechanically configured such that only the outer ring 312 travels inwardly for the inward click input, while the cover 314 and metallic portion 324 remain motionless. It is to be appreciated that a variety of different selections and combinations of the particular mechanical elements that will travel inwardly to achieve the “inward click” input are within the scope of the present teachings, whether it be the outer ring 312 itself, some part of the cover 314, or some combination thereof. However, it has been found particularly advantageous to provide the user with an ability to quickly go back and forth between registering “ring rotations” and “inward clicks” with a single hand and with minimal amount of time and effort involved, and so the ability to provide an inward click directly by pressing the outer ring 312 has been found particularly advantageous, since the user's fingers do not need to be lifted out of contact with the device, or slid along its surface, in order to go between ring rotations and inward clicks. Moreover, by virtue of the strategic placement of the electronic display 316 centrally inside the rotatable ring 312, a further advantage is provided in that the user can naturally focus their attention on the electronic display throughout the input process, right in the middle of where their hand is performing its functions. The combination of intuitive outer ring rotation, especially as applied to (but not limited to) the changing of a thermostat's setpoint temperature, conveniently folded together with the satisfying physical sensation of inward clicking, together with accommodating natural focus on the electronic display in the central midst of their fingers' activity, adds significantly to an intuitive, seamless, and downright fun user experience. Further descriptions of advantageous mechanical user-interfaces and related designs, which are employed according to some embodiments, can be found in U.S. Ser. No. 13/033,573, supra, U.S. Ser. No. 29/386,021, supra, and U.S. Ser. No. 13/199,108, supra.

FIG. 3C illustrates a cross-sectional view of a shell portion 309 of a frame of the thermostat of FIGS. 3A-B, which has been found to provide a particularly pleasing and adaptable visual appearance of the overall thermostat 300 when viewed against a variety of different wall colors and wall textures in a variety of different home environments and home settings. While the thermostat itself will functionally adapt to the user's schedule as described herein and in one or more of the commonly assigned incorporated applications, supra, the outer shell portion 309 is specially configured to convey a “chameleon” quality or characteristic such that the overall device appears to naturally blend in, in a visual and decorative sense, with many of the most common wall colors and wall textures found in home and business environments, at least in part because it will appear to assume the surrounding colors and even textures when viewed from many different angles. The shell portion 309 has the shape of a frustum that is gently curved when viewed in cross-section, and comprises a sidewall 376 that is made of a clear solid material, such as polycarbonate plastic. The sidewall 376 is backpainted with a substantially flat silver- or nickel-colored paint, the paint being applied to an inside surface 378 of the sidewall 376 but not to an outside surface 377 thereof. The outside surface 377 is smooth and glossy but is not painted. The sidewall 376 can have a thickness T of about 1.5 mm, a diameter d1 of about 78.8 mm at a first end that is nearer to the wall when mounted, and a diameter d2 of about 81.2 mm at a second end that is farther from the wall when mounted, the diameter change taking place across an outward width dimension “h” of about 22.5 mm, the diameter change taking place in either a linear fashion or, more preferably, a slightly nonlinear fashion with increasing outward distance to form a slightly curved shape when viewed in profile, as shown in FIG. 3C. The outer ring 312 of outer cap 308 is preferably constructed to match the diameter d2 where disposed near the second end of the shell portion 309 across a modestly sized gap g1 therefrom, and then to gently arc back inwardly to meet the cover 314 across a small gap g2. It is to be appreciated, of course, that FIG. 3C only illustrates the outer shell portion 309 of the thermostat 300, and that there are many electronic components internal thereto that are omitted from FIG. 3C for clarity of presentation, such electronic components being described further hereinbelow and/or in other ones of the commonly assigned incorporated applications, such as U.S. Ser. No. 13/199,108, supra.

According to some embodiments, the thermostat 300 includes a processing system 360, display driver 364 and a wireless communications system 366. The processing system 360 is adapted to cause the display driver 364 and display area 316 to display information to the user, and to receiver user input via the rotatable ring 312. The processing system 360, according to some embodiments, is capable of carrying out the governance of the operation of thermostat 300 including the user interface features described herein. The processing system 360 is further programmed and configured to carry out other operations as described further hereinbelow and/or in other ones of the commonly assigned incorporated applications. For example, processing system 360 is further programmed and configured to maintain and update a thermodynamic model for the enclosure in which the HVAC system is installed, such as described in U.S. Ser. No. 12/881,463, supra. According to some embodiments, the wireless communications system 366 is used to communicate with devices such as personal computers and/or other thermostats or HVAC system components, which can be peer-to-peer communications, communications through one or more servers located on a private network, or and/or communications through a cloud-based service.

FIG. 4 illustrates a side view of the thermostat 300 including a head unit 410 and a backplate (or wall dock) 440 thereof for ease of installation, configuration and upgrading, according to some embodiments. As is described hereinabove, thermostat 300 is wall mounted and has circular in shape and has an outer rotatable ring 312 for receiving user input. Head unit 410 includes the outer cap 308 that includes the cover 314 and electronic display 316. Head unit 410 of round thermostat 300 is slidably mountable onto back plate 440 and slidably detachable therefrom. According to some embodiments the connection of the head unit 410 to backplate 440 can be accomplished using magnets, bayonet, latches and catches, tabs or ribs with matching indentations, or simply friction on mating portions of the head unit 410 and backplate 440. According to some embodiments, the head unit 410 includes a processing system 360, display driver 364 and a wireless communications system 366. Also shown is a rechargeable battery 420 that is recharged using recharging circuitry 422 that uses power from backplate that is either obtained via power harvesting (also referred to as power stealing and/or power sharing) from the HVAC system control circuit(s) or from a common wire, if available, as described in further detail in co-pending patent application U.S. Ser. Nos. 13/034,674, and 13/034,678, which are incorporated by reference herein. According to some embodiments, rechargeable battery 420 is a single cell lithium-ion, or a lithium-polymer battery.

Backplate 440 includes electronics 482 and a temperature/humidity sensor 484 in housing 460, which are ventilated via vents 442. Two or more temperature sensors (not shown) are also located in the head unit 410 and cooperate to acquire reliable and accurate room temperature data. Wire connectors 470 are provided to allow for connection to HVAC system wires. Connection terminal 480 provides electrical connections between the head unit 410 and backplate 440. Backplate electronics 482 also includes power sharing circuitry for sensing and harvesting power available power from the HVAC system circuitry.

FIG. 5A illustrates thermostat 300 and several exemplary natural and comfortable hand positions of a user manipulating the thermostat to change some aspect of its configuration or operation as presented through a user interface displayed on electronic display 316. In some implementations the user interface may include a sequence of display elements arranged in a circular arrangement, a linear arrangement, or combinations thereof and as further described in U.S. Ser. No. 13/269,501, supra. In some embodiments, the user interface may be navigated through using a rotatable ring 312, or other rotational input device invoking a series of ring rotations to scroll through the series of display elements and inward clicks to select one of these display elements and gain additional information or access to other portions of a menu.

Usability of the user interface displayed on thermostat 300 may be positively enhanced when the user's hand position on thermostat 300 remains in a comfortable position throughout all aspects of operating the thermostat 300. In some implementations, the user's hand may initially be comfortably positioned in any one of the circular quadrants 500 (I) through (IV) depending on the user's left or right handedness, height relative to the position of the thermostat, and a variety of other ergonomic factors. Once the user's hand is placed in a comfortable position, the user should be able to navigate most, if not all, aspects of the user interface displayed on thermostat 300 while rotating rotatable ring 312 through one or two but preferably no more three of the circular quadrants 500 (I) through (IV). This navigation is preferably done without the user having to lift and reposition their hand.

As an example, a user's hand 502 in starting position (a) initially begins navigation of a user interface displayed on thermostat 300, as indicated by the approximate position of the forefinger, in circular quadrant (I). The user's hand 502 placed on thermostat 300 may then rotate clockwise approximately a quarter-revolution into intermediary position (b) and towards the lower boundary of circular quadrant (I), which may happen to be a limit on the user's ability to rotate their wrist and hand. With the user's hand remaining engaged to the thermostat 300 in intermediary position (b), the user may peer through the open area between the thumb and forefinger to read information displayed on the user interface, reposition a display element on the display, select a display element with a inward click, or other interactions with the user interface. The user may then turn an equivalent quarter-revolution counter-clockwise from the intermediary position (b) arriving in a final position (c) whereupon the user's hand continues to remain engaged to the thermostat 300 and is ready to further interact with the user interface.

Embodiments of the present invention facilitate keeping the user's hand in a comfortable position and engaged to the thermostat 300 as menus and interactions within the user interface vary in both complexity and number of display elements presented. A variable assist scroll engine for rotational inputs (not shown in FIG. 5B), also referred to as a variable assist scroll engine, designed in accordance with embodiments of the present invention uses heuristics to provide assistance in scrolling through an arbitrary number of display elements presented on the user interface while in the process also helping keep the user's hand in a natural and comfortable position on the thermostat. As described hereinabove, the user's rotational input in one embodiment may traverse a sequence of display elements preferably using less than a quarter-revolution in order to enhance the user experience and improve the usability of the thermostat. In alternate embodiments and depending on the user's preference, the variable assist scroll engine may also allow the user to configure the rotational input for scrolling to less than a half-revolution, a three-quarter revolution, or set as a measurement of angular displacement from 0 to 360 degrees.

As a brief example, FIG. 5B illustrates, a short menu 508 from a user interface having two display elements (i.e., “UNLOCKED” and “LOCKED”) and a long menu 512 having eight display elements with wider spacing and multiple lines of data. In accordance with some embodiments, the variable assist scroll engine may not accelerate the scrolling movement between the two display elements since the element distance 510 (i.e., the distance between the beginning and end of the sequence of elements) is quite short might make using the short menu 508 difficult for the user. Even if a user imparts a rapid rotational acceleration during rotational input 504, indicating an imperative to scroll more quickly, some embodiments of variable assist scroll engine may select to actually reduce or quickly “dampen” the amount of acceleration on the short menu 508 to a predetermined level. In some embodiments, limiting the acceleration to the predetermined level may improve the interface by providing the user with a more predictable and consistent interaction with the display elements. In comparison, the variable assist scroll engine may detect that a user has subsequently imparted the same rapid rotational acceleration to scroll through long menu 512. In this case, the variable assist scroll engine may respond by increasing the acceleration of the scrolling movement as the associated element distance 514 is much greater than the short menu 508. The variable assist scroll engine assists the user entering rotational input 506 by accelerating the scrolling movement of the sequence of display elements thereby allowing the user to quickly scroll through the more numerous display elements on the long menu 512. In some embodiments, the user is able to scroll through the display elements while using less than quarter-revolution of the rotatable ring 312 as indicated.

FIG. 6 illustrates a logical schematic diagram using a variable assist scroll engine 604 to process user inputs on a control device such as a thermostat in accordance with some embodiments. As described hereinabove, rotational input device 602 may be a rotatable ring located around a periphery of an electronic display centrally mounted on a body of the thermostat or control device, such as rotatable ring 312 shown and described supra with respect to FIG. 3. In some embodiments, the rotational input device 602 receives rotational user inputs and provides a measurement of angular displacement at regular time intervals such as once every 1/60th of a second or faster depending on the sampling capabilities of the rotational input device 602. In other embodiments, the rotational input device 602 may receive rotational user input and produce instead output linear displacements reflecting a linear representation of the angular distance traveled by the rotational input device 602 in a given time interval.

In some embodiments, variable assist scroll engine 604 receives these linear and/or rotational displacements over time and uses them to determine a scrolling movement for display elements on the electronic display. The scrolling movement may be calculated using linear or angular equations describing speed (change in displacement), velocity (speed in a direction), and acceleration (change in velocity over time with direction). Variable assist scroll engine 604 may modify the degree of acceleration than provided through rotational input device 602 according to the application of information such as tuning parameters for scrolling display elements 612 (also referred to as tuning parameters 612) as well as display elements metadata 610, which are used to describe the shapes and sizes of display elements as they are rendered on the electronic display of the thermostat.

Some of these tuning parameters 612 help the variable assist scroll engine 604 model the scrolling of the display elements as physical objects having a mass and inertia being accelerated and then damped by friction or other opposing forces. Different inertial models used in simulating movement of these display elements may include a flywheel or weighted cylinder spinning around a rod as well as other variations to provide a smooth and attractive appearance of the display elements as they are rendered on the electronic display. For example, if a user enters user rotational inputs 608 in the opposite direction to the movement of the scrolling display, variable assist scroll engine may dampen the scrolling of the display elements based on tuning parameters 612 and the inertial model. In some embodiments, tuning parameters 612 may also be selected to accommodate for different menu types, such as a circular menu and a linear menu either with wrapping and non-wrapping effects, and to achieve an overall effect on the scrolling of the display elements on the electronic display.

In some implementations, these tuning parameters 612 may include an acceleration multiplier, a scroll decay factor, edge bounce decay factor, a center decay factor, and a scroll settle threshold. The acceleration multiplier is used to increase or decrease the amount of acceleration applied to a set of scrolling elements. The value may be set to a higher value if a menu has a larger sequence of display elements and it is desirable to scroll quickly through the sequence. Scroll decay factor helps simulate the effect of friction and determines how the long the elements may scroll before stopping. If the scroll decay is set to a high value, the scrolling movement may decay quickly and stop. In some embodiments, the scrolling may continue even after a user has stopped providing rotational input to the rotational input device 602 due to simulated force and inertia. The edge bounce decay factor is used in a non-wrapping menu when it reaches the terminus element. In some embodiments, the menu will not stop quickly but “bounce” when it reaches the end and oscillate briefly as the energy decays. Accordingly, edge bounce decay determines how quickly the energy in the terminus element in a sequence of display elements will decay when it reaches the end of the menu. The center decay is used to determine how a quickly the decay will occur for a display element once it settles into a position. In some embodiments, a user interface may apply gravity to a display element and cause the display element to settle into simulated notch, groove, or indentation simulated in the user interface. Accordingly, the center decay determines the decay associated with this event and how quickly a display element may settle into position. The scroll settle threshold is a threshold value used to determine when a scrolling of elements has effectively stopped. Once the movement of the scrolling elements falls below this threshold, scrolling of the elements will be stopped. In some embodiments, the scroll settle threshold may vary for different menus depending on the simulated forces, inertia, and friction associated with the scrolling movement of the display elements.

The variable assist scroll engine 604 sends these display elements to render engine 606 to be displayed on the electronic display at a frequency determined by the display device. In some implementations, the frequency of the electronic display device may be every 1/60th of a second or faster depending on the capabilities of the particular device and how it is configured. As this process repeats, the display elements scrolling over the electronic display appear animated, pleasing to the user and easier to navigate in accordance with embodiments of the invention.

Referring to FIG. 7, a schematic block diagram provides an overview of some components inside a thermostat in accordance with embodiments of the present invention. Thermostat 800 is similar to thermostat 300 in FIG. 3 and highlights selected internal components including a Wifi module 702, a head unit processor 704 with associated memory 710, a backplate processor 708 with associated memory 714, and sensors 712 (e.g., temperature, humidity, motion, ambient light, proximity). Further details regarding the physical placement and configuration of the thermostat head unit, backplate, and other physical elements are described in the commonly assigned U.S. Ser. No. 13/199,108, supra. The backplate processor 708 is coupled to, and responsible for polling on a regular basis, most or all of the sensors 712 including the temperature and humidity sensors, motion sensors, ambient light sensors, and proximity sensors. For sensors 712 that may not be located on the backplate hardware itself but rather are located in the head unit, ribbon cables or other electrical connections between the head unit and backplate are provided for this purpose. Notably, there may be other sensors (not shown) for which the head unit processor 704 is responsible, with one example being a ring rotation sensor that senses the user rotation of the outer ring 716. Battery 706 supplies power to the electronic display (not shown in FIG. 7) used to display scrolling display elements in accordance embodiments of the present invention as well as to Wifi module 702 and both backplate processor 708 and head unit processor 704.

In some embodiments, memory 710 may include a menu system module 718, variable assist scroll engine 720, display render module 722, HVAC module 724, communications module 726, and a runtime environment 728 for managing these modules and their execution on head unit processor 704. In one embodiment, menu system module 718 may include the menu systems associated with configuring, controlling, and generally interfacing with thermostat 700 through rotatable ring 716. In accordance with some embodiments, variable assist scroll engine 720 processes scrolling display elements used in menu system module 718 to interact more efficiently with rotatable ring 716 as well as display more attractively on the electronic display of the thermostat 700. For example, the variable assist scroll engine 720 may further accelerate the scrolling of display elements from a menu in menu system module 718 and thereby reduce the required amount of rotational input applied to rotatable ring 716. In some embodiments, variable assist scroll engine 720 accelerates the scrolling movement allowing the user to scroll through many display elements in multiple areas of menu system module 718. In each the areas of the menu, the user may scroll through a variable number of display elements without turning rotatable ring 716 more than a quarter-turn. This advantageously makes the thermostat 800 or other control devices with a rotational input easier to use since user's hand can control the thermostat without having to remove and reposition multiple times in the midst of navigating a menu, setting a set point on the thermostat, or performing some other task. The display render module 722 receives the various display elements from variable assist scroll engine 720 and renders them on the electronic display (not shown) of thermostat 800. HVAC module 724 may further be used to gather commands and data from menu system module 718 in consideration of controlling the HVAC system.

FIG. 8 illustrates a flow chart diagram of the operations for processing rotational user inputs and controlling the scrolling of display elements in accordance with some embodiments. In processing the rotational inputs, embodiments of the present invention balance usability of the interface with the need to reduce or minimize the amount of rotational input necessary to scroll through display elements on the electronic display of a control device. In some embodiments, the variable assist engine can assist with the scrolling the display elements but must still leave the user with control over the interface.

In some embodiments, aspects of the present invention may display on the electronic display associated with the control device at least a portion of an initial display element selected from a sequence of display elements. (802) For example, the initial display element may be a symbol or image selected from a sequence of display elements arranged along on a circular menu or may be a symbol or image selected from a sequence of display elements arranged in a series on a linear menu. If the initial display element is larger then it may only be partially displayed on the electronic display while a smaller display element from a sequence of display elements may be fully displayed on the on the electronic display. In some embodiments, the electronic display is centrally mounted on a body of a control device providing for a smaller overall form factor for the device while in alternate embodiments, the display may be mounted offset or adjacent to the body of the control device.

In some embodiments, determining an angular movement is made from a rotational user input applied to a rotational input device associated with the control device. (804) The angular movement may be determined as a measurement of the displacement, velocity, and acceleration of the rotational input device averaged over a time interval. For example, a user may impart a rotational user input with their hand using a rotatable ring around a periphery of the electronic display, such as rotatable ring 300 described and shown supra. in FIG. 3. The angular displacement on the rotatable ring sampled at regular time intervals is provided to embodiments of the present invention and used to calculate the angular movement. In alternative embodiments, the rotational input device may be a rotatable knob or other mechanism to rotate and scroll through display elements in the interface. The rotatable knob may be smaller and positioned adjacent to the display rather than surrounding the electronic display portion and adjustable with a user's fingers.

In some embodiments, one or more heuristics are applied to variably assist with a scrolling movement of the sequence of display elements on the electronic display and reduce the rotational user input necessary to traverse the sequence of display elements. (806) The user may preferably configure one embodiment of the variable assist scroll engine to assist in scrolling through the sequence of display elements using a rotational input of less than a quarter-revolution, a half-revolution, a three-quarter revolution, or set as a measurement of an angular displacement from 0 to 360 degrees. Alternate embodiments of the variable assist scroll engine may set the default rotational input to less than quarter-revolution if the user selects to not customize or change these settings. In providing assistance with the scrolling movement, one embodiment takes into consideration an angular movement associated with the rotational user input and an element distance associated with the sequence of display elements to be displayed on the electronic display. If the angular movement has a larger rotational acceleration component and the element distance is quite long, the engine may increase the assistance with scrolling through the sequence of display elements in one or multiple ways as the user has indicated an imperative to quickly view the sequence of display elements. For example, a user may wish to read a terminus element in a menu having a long list of display elements with text and thus provide a large rotational acceleration to the rotational input device.

In some embodiments, a heuristic to reduce the required rotational user input may cause the engine to increase or decrease the rate of scrolling movement associated with the sequence of display elements compared with a rate of angular movement received from the rotational input device. (808) To perform this function, for example, the engine may increase the acceleration of the scrolling movement to meet both the user's request to view the information quickly and reduce the rotational input required to a predetermined amount, such as a quarter-rotation of the rotational ring 312 in FIG. 3. To increase the acceleration, one embodiment may use the rotational acceleration component of the angular movement and either add a predetermined amount of acceleration or multiple of the acceleration by a factor such as an acceleration multiplier.

In some embodiments, a heuristic to reduce the required rotational user input may cause the engine to create an extended scrolling movement that continues to display additional display elements from the sequence of display elements after the initial angular movement associated with the rotational user input has stopped. (810) For example, a rotational user input with acceleration may impart a simulated force and inertia on the sequence of display elements causing the display elements to scroll after the rotational user input has ended. As previously described hereinabove, the movement of the display may be modeled as a physical object having mass, inertia, and decay due to friction or opposing rotational forces. Incorporating this type of “virtual inertia” increases the visual attraction of the interface while simultaneously achieving the goal of reducing the rotational input required to scroll through the display elements in a manner understood and expected in the user's physical world (i.e, inertia and decay). In some embodiments, the extended scrolling movement may be reduced through successive subtraction or division by a scroll decay factor until the scrolling movement falls below a scroll settle threshold and is determined to have stopped.

In some embodiments, a heuristic to reduce the required rotational user input may cause the engine to increase a distance covered by the scrolling movement compared with a distance covered by the angular movement. (812) For example, a user may provide a quarter-revolution on a rotatable ring as and input and cause the corresponding elements to scroll a half-revolution on the electronic display. In some embodiments, the distance travelled by the scrolling elements may be one or several times the distance provided by the user through the rotational input device. This is particularly useful if a user is scrolling through a long sequence of display elements and needs to cover the longer distance quickly.

In some embodiments, a heuristic to reduce the required rotational user input may cause the engine to continue the scrolling movement of the sequence of display elements until at least one has been affirmatively identified on the electronic display. (814) For example, a user's rotational input may cause a sequence of display elements to scroll with a scrolling movement and land in an area between two display elements leaving it not possible to select or identify a specific display element in the context of the user interface. To keep the required rotational user input reduced or minimized, one embodiment simulates a notch, indentation, or groove coincident with each display element under the force of gravity and friction which in turn causes the scrolling movement to settle on a particular display element. In one embodiment, a distance calculation may be used to select one display element over another nearby display element as the scrolling movement of the display elements slows and comes close to falling below the scroll settle threshold.

In some embodiments, the variable assist scroll engine may determine whether a user has applied a subsequent angular movement in an opposite rotational. (816) In some embodiments, the user applies the subsequent rotational input to the rotational input device in an opposite direction to the scrolling movement displayed on the electronic display. (816—Yes) For example, the user may see a display element of interest and desire to quickly slow or potentially stop the scrolling of the display elements. Variable assist scroll engine responds by gradually slowing the scrolling of display elements in proportion to the amount of the subsequent angular movement. (818) In one embodiment, variable assist scroll engine models the subsequent rotational input as an opposing rotational force upon an object thus the user experience is familiar and expected. In addition, this heuristic further reduces the required rotational user input as the variable assist scroll engine allows the user to quickly slow or stop the scrolling movement with a reduced rotational input.

FIGS. 9A-9D illustrate one application of the variable assist scroll engine to a circular menu of display elements in accordance with some embodiments. Referring to FIG. 9A, a user in this example has applied a rotational force in clockwise direction 908 to a rotatable ring 906 surrounding an electronic display 904 on thermostat 902. The acceleration graph 914 indicates schematically at ΔTime=t1 (hereinafter t1) the rotatable ring acceleration 916 (hereinafter ring acceleration) is less than the display elements acceleration 918 (hereinafter display acceleration) as the variable assist scroll engine has increased the simulated acceleration associated with the animation of circular menu 912.

In one embodiment, the circular menu 912 at t2 in FIG. 9A has a display elements velocity 926 (hereinafter display velocity) in velocity graph 922 which is also greater than the rotatable ring velocity 924 (hereinafter ring velocity). Circular menu 912 also moved through a rotational displacement 928 at t2 that is at least twice the rotational displacement 920 associated with the rotatable ring 906 of the thermostat 902. In this application, the variable assist scroll engine has applied one heuristic to reduce the rotational user input to a quarter-rotation of the rotatable ring 906 while traversing at least half the sequence of display elements in the circular menu 912.

At a subsequent time interval t3, the user is no longer moving rotatable ring 906 and the ring velocity 932 as indicated by velocity graph 930 is negligible or zero. In contrast, circular menu 912 continues to travel at a much more significant display velocity 934 reduced in part by a simulated friction or decay. In this embodiment. variable assist scroll engine has imparted a rotational inertia and decay to circular menu 912 to further reduce the rotational input required by the user. While not displayed in FIG. 9A, rotational displacement 936 will continue to increase after t3 until display velocity 934 decays further and circular menu 912 stops.

Referring to FIG. 9B, in this example a user has applied a rotational force in clockwise direction 908 to a rotatable ring 906 of thermostat 902. The acceleration graph 938 indicates schematically at t1 the ring acceleration 940 is less than the display acceleration 942 as the variable assist scroll engine has slightly increased the simulated acceleration associated with the animation of circular menu 912. The ring acceleration 940 provided in FIG. 9B is similar to the ring acceleration 916 in FIG. 9A except that it has a much lower magnitude in comparison. As a result, the variable assist scroll engine has also responded with a lower acceleration for the animation of the circular menu 912 to reflect the user's intent when using the interface.

In one embodiment, the circular menu 912 at t2 in FIG. 9B has a display velocity 950 in velocity graph 946 which is comparable with the ring velocity 948. It follows that circular menu 912 has also moved through a rotational displacement 952 at t2 that is also comparable to the rotational displacement 944 associated with the rotatable ring 906 of the thermostat 902. In this application, the variable assist scroll engine has applied one heuristic of allowing the user to make a quarter-rotation of the rotatable ring 906 that more directly controls the scrolling movement of display elements in the circular menu 912.

At a subsequent time interval t3 in FIG. 9B, the user is no longer moving rotatable ring 906 and the ring velocity 956 as indicated by velocity graph 954 is negligible or zero. Likewise, variable assist scroll engine has damped circular menu 912 at t3 such that display velocity 958 is also negligible or zero and the animation of circular menu 912 has effectively stopped. In this embodiment. variable assist scroll engine has reduced the effects of any inertial energy in order to provide the user with more control over the scrolling movement of the display elements in circular menu 912.

Referring to FIG. 9C, in this example a user has again applied a rotational force in clockwise direction 908 to a rotatable ring 906 associated with a thermostat 902. The acceleration graph 962 indicates schematically at t1 that ring acceleration 964 is less than the display acceleration 966 as the variable assist scroll engine has increased the simulated acceleration associated with the animation of circular menu 912. The ring acceleration 964 is similar to the ring acceleration 916 in FIG. 9A except that it is at a much higher magnitude in comparison. As a result, the variable assist scroll engine responds with an even higher acceleration for the animation of the circular menu 912 to reflect the user's intent when using the interface.

In one embodiment, the circular menu 912 at t2 in FIG. 9C has a display velocity 974 in velocity graph 970 which is significantly greater than the ring velocity 972. As a result of the associated relatively high acceleration and velocity, circular menu 912 has also moved through a rotational displacement 976 at t2 that is almost three times the rotational displacement 968 associated with the rotatable ring 906. In this application, the variable assist scroll engine has applied one heuristic to reduce the rotational user input to a quarter-rotation of the rotatable ring 906 while traversing almost three-quarters of the sequence of display elements in the circular menu 912.

At a subsequent time interval t3 in FIG. 9C, the user is no longer moving rotatable ring 906 and the ring velocity 980 as indicated by velocity graph 978 is negligible or zero. In contrast, circular menu 912 at t3 continues to travel at a much more significant display velocity 982 reduced only partially by the simulated friction or decay. In this embodiment, the inertia imparted a rotational to circular menu 912 allowed the circular menu 912 at t3 to complete almost a full-revolution from only a quarter-revolution input to rotatable ring 906. Referring to FIG. 9D, the user at t4 has now applied a rotational force to a rotatable ring 906 with ring acceleration 987 in counter-clockwise direction 909 causing circular menu 912 at t4 to receive a “negative” acceleration and dampening force. Despite the display acceleration 988 going negative at t4, the animation of circular menu 912 does not immediately reverse direction but gradually slows before appearing to reverse direction. Accordingly, circular menu 912 has a rotational displacement 990 at t4 and continues to extend to rotational displacement 995 in t5 with a display velocity of 994 as indicated by velocity graph 992. In contrast, rotatable ring 991 has travelled at ring velocity 993 at t5 with a rotational displacement 991 in the opposite direction, for a brief moment, to the rotation of circular menu 912 at t5. At t6 in FIG. 9D, the ring velocity 997 associated with rotatable ring 906 is negligible or zero and the display velocity 998 has reversed direction causing the animation of circular menu 912 to reverse direction traveling counter-clockwise with rotational displacement 999.

FIG. 10 illustrates one application of a heuristic for affirmatively identifying a display element on a circular menu in accordance with some embodiments of the present invention. In this embodiment, a user has applied a rotational input at t1 to rotatable ring 906 on thermostat 902. In the same time t1, electronic display 904 on thermostat 902 displays an indicator 910 on circular menu 912 identifying a symbol “f” on the circular menu 912. Detail 1004 illustrates schematically that each symbol is logically associated with a groove and under the force of simulated gravity identifies a display element under a similarly simulated pawl 911.

In this example, a rotational displacement 1002 on thermostat 902 at t1 results in circular menu 912 at t2 experiencing a rotational displacement 1008 such that indicator 910 momentarily falls between symbols “u” and “v” making it not possible to determine whether “u” or “v” has been identified in the context of the user interface. To resolve this dilemma, and further reduce or minimize additional required rotational input from the user, one embodiment at t3 in FIG. 10 simulating the groove associated with each symbol either advances or retreats circular menu 912. Upon moving circular menu 912 a slight amount, indicator affirmatively identifies a display element, such as symbol “v” as shown in detail 1010. On or about the same moment, detail 1010 also shows that an audible “Click” sound is provided in the user interface providing a user with audible feedback and providing a sense of added control, confidence, and comfort when operating the thermostat 906.

FIGS. 11A-11B illustrate another application of the variable assist scroll engine to a linear menu of display elements in accordance with some embodiments. Referring to FIG. 11A, in this example a user has applied a rotational force in clockwise direction 908 to a rotatable ring 906 surrounding an electronic display 904 centrally mounted on a body of a thermostat 902. The acceleration graph 1102 indicates schematically at t1 the ring acceleration 1104 is less than the display acceleration 1106 as the variable assist scroll engine has increased the simulated acceleration associated with the animation of linear menu. It can also be observed that linear menu 1108, which operates in the scrolling direction as indicated in FIG. 11A, is a scheduling system for operation of the thermostat at different temperature setpoints in the course of a weeklong period from Monday to Friday with indicator 1109 showing the current display element on the linear menu 1108 pointing to 4 pm on Monday.

In one embodiment, the linear menu 1108 at t2 in FIG. 9A has a display velocity 1116 in velocity graph 1112 which is also greater than the ring velocity 1114. Linear menu 1108 also moved through a linear displacement at t2 that is at least twice the rotational displacement 1110 associated with the rotatable ring 906 of the thermostat 902. This linear displacement can be observed as the indicator 1109 at t1 was indicates 4 pm on Monday while the indicator 1118 at t2 indicates 8 pm on Thursday. In this application, the variable assist scroll engine has applied one heuristic to reduce the rotational user input to a quarter-rotation of the rotatable ring 906 while traversing more than twice a comparable linear distance in the sequence of display elements in the linear menu 1108.

At a subsequent time interval t3 in FIG. 11A, the user is no longer moving rotatable ring 906 and the ring velocity 1122 as indicated by velocity graph 1120 is negligible or zero. In contrast, linear menu 1108 continues to travel at a much more significant display velocity 1124 reduced in part by a simulated friction or decay. In this embodiment, variable assist scroll engine has imparted an inertia and linear menu 1108 to further scrolls where indicator 1126 shows 2 pm Friday. While not displayed in FIG. 11A, the linear displacement of linear menu 1108 will continue to increase after t3 until display velocity 1124 decays further and the scrolling stops.

Referring to FIG. 11B, in this example a user has applied a rotational force in clockwise direction 908 to a rotatable ring 906 of thermostat 902. The acceleration graph 1130 indicates schematically at t1 the ring acceleration 1130 is less than the display acceleration 1132 as the variable assist scroll engine has slightly increased the simulated acceleration associated with the animation of linear menu 1108. The ring acceleration 1130 provided in FIG. 11B is similar to the ring acceleration 1104 in FIG. 11A except that it is a lower magnitude in comparison and, more importantly, is used to change a setpoint 1134 rather than a date in the schedule of linear menu 1108. As a result, the variable assist scroll engine has also responded with a lower acceleration for the animation of the linear menu 1108 to reflect the user's intent when using the interface.

In one embodiment, the linear menu 1108 at t2 in FIG. 11B has a display velocity 1142 in velocity graph 1138 which is comparable with the ring velocity 1140. It follows that linear menu 1108 has also moved through a linear displacement at t2 that is comparable to the rotational displacement 944 associated with the rotatable ring 906. For example, a relatively small change between the setpoint 1134 at 76 degrees and the setpoint 1144 at 68 degrees in FIG. 11B does not require a large linear displacement. In this application, the variable assist scroll engine has applied one heuristic of allowing the user to make a quarter-rotation of the rotatable ring 906 that more directly controls the movement of the scrolling movement of display elements in the linear menu 1108.

At a subsequent time interval t3 in FIG. 11B, the user is no longer moving rotatable ring 906 and the ring velocity 1148 as indicated by velocity graph 1146 is negligible or zero. Likewise, variable scroll assist engine has damped linear menu 1108 at t3 such that display velocity 1150 is also negligible or zero and the animation of linear menu 1108 has effectively stopped. In this embodiment, variable assist scroll engine has reduced the effects of any inertial energy in order to provide the user with more control over the scrolling movement of the display elements in linear menu 1108.

FIGS. 12A-C illustrates further additional types of menus that have also benefitted from application of the variable assist scroll engine in accordance with some embodiments. In settings menu in FIG. 12A, a set of display elements shaped discs scroll linearly across the electronic display as physical objects with qualities of mass and inertia. Further, temperature setting menu in FIG. 12B is another example of a circular menu with a setpoint tick mark 1212 and a current temperature tick mark 1210. Rotating main menu in FIG. 12C is a circular type menu with settings 1214 to be scrolled using embodiments of the present invention.

Although the foregoing has been described in some detail for purposes of clarity, it will be apparent that certain changes and modifications may be made without departing from the principles thereof. By way of example, it is within the scope of the present teachings for the rotatable ring of the above-described thermostat to be provided in a “virtual,” “static,” or “solid state” form instead of a mechanical form, whereby the outer periphery of the thermostat body contains a touch-sensitive material similar to that used on touchpad computing displays and smartphone displays. For such embodiments, the manipulation by the user's hand would be a “swipe” across the touch-sensitive material, rather than a literal rotation of a mechanical ring, the user's fingers sliding around the periphery but not actually causing mechanical movement. This form of user input, which could be termed a “virtual ring rotation,” “static ring rotation”, “solid state ring rotation”, or a “rotational swipe”, would otherwise have the same purpose and effect of the above-described mechanical rotations, but would obviate the need for a mechanical ring on the device. Although not believed to be as desirable as a mechanically rotatable ring insofar as there may be a lesser amount of tactile satisfaction on the part of the user, such embodiments may be advantageous for reasons such as reduced fabrication cost. By way of further example, it is within the scope of the present teachings for the inward mechanical pressability or “inward click” functionality of the rotatable ring to be provided in a “virtual” or “solid state” form instead of a mechanical form, whereby an inward pressing effort by the user's hand or fingers is detected using internal solid state sensors (for example, solid state piezoelectric transducers) coupled to the outer body of the thermostat. For such embodiments, the inward pressing by the user's hand or fingers would not cause actual inward movement of the front face of the thermostat as with the above-described embodiments, but would otherwise have the same purpose and effect as the above-described “inward clicks” of the rotatable ring. Optionally, an audible beep or clicking sound can be provided from an internal speaker or other sound transducer, to provide feedback that the user has sufficiently pressed inward on the rotatable ring or virtual/solid state rotatable ring. Although not believed to be as desirable as the previously described embodiments, whose inwardly moving rotatable ring and sheet-metal metal style rebounding mechanical “click” has been found to be particularly satisfying to users, such embodiments may be advantageous for reasons including reduced fabrication cost. It is likewise within the scope of the present teachings for the described thermostat to provide both the ring rotations and inward clicks in “virtual” or “solid state” form, whereby the overall device could be provided in fully solid state form with no moving parts at all.

While examples and implementations have been described, they should not serve to limit any aspect of the present invention. Accordingly, implementations of the invention can be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. Apparatus of the invention can be implemented in a computer program product tangibly embodied in a machine readable storage device for execution by a programmable processor; and method steps of the invention can be performed by a programmable processor executing a program of instructions to perform functions of the invention by operating on input data and generating output. The invention can be implemented advantageously in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. Each computer program can be implemented in a high level procedural or object oriented programming language, or in assembly or machine language if desired; and in any case, the language can be a compiled or interpreted language. Suitable processors include, by way of example, both general and special purpose microprocessors. Generally, a processor will receive instructions and data from a read only memory and/or a random access memory. Generally, a computer will include one or more mass storage devices for storing data files; such devices include magnetic disks, such as internal hard disks and removable disks; magneto optical disks; and optical disks. Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto optical disks; CD ROM disks and other non-transitory storage mediums. Any of the foregoing can be supplemented by, or incorporated in, ASICs.

By way of further example, although described above as having ring rotations and inward clicks as the exclusive user input modalities, which has been found particularly advantageous in terms of device elegance and simplicity, it is nevertheless within the scope of the present teachings to alternatively provide the described thermostat with an additional button, such as a “back” button. In one option, the “back” button could be provided on the side of the device, such as described in the commonly assigned U.S. Ser. No. 13/033,573, supra. In other embodiments, plural additional buttons, such as a “menu” button and so forth, could be provided on the side of the device. For one embodiment, the actuation of the additional buttons would be fully optional on the part of the user, that is, the device could still be fully controlled using only the ring rotations and inward clicks. However, for users that really want to use the “menu” and “back” buttons because of the habits they may have formed with other computing devices such as smartphones and the like, the device would accommodate and respond accordingly to such “menu” and “back” button inputs.

By way of even further example, other forms of user input modalities could be provided by the above-described thermostat as additions and/or alternative to the above-described ring rotations and inward clicks without necessarily departing from the scope of the present teachings. Examples include optically sensed gesture-based user inputs similar to those provided with modern video game consoles, and voice inputs implemented using known speech recognition algorithms. It is to be appreciated that there are many alternative ways of implementing both the processes and apparatuses described herein. Accordingly, the present embodiments are to be considered as illustrative and not restrictive, and the inventive body of work is not to be limited to the details given herein, which may be modified within the scope and equivalents of the appended claims. 

1. A processor-implemented method of processing a rotational input to a control device having a an electronic display, comprising: displaying on the electronic display associated with the control device at least a portion of an initial display element selected from a sequence of display elements; determining an angular movement from a rotational user input applied to a rotational input device associated with the control device; and applying one or more heuristics to variably assist with a scrolling movement of the sequence of display elements on the electronic display and reduce the rotational user input necessary to traverse the sequence of display elements.
 2. The processor-implemented method of claim 1 wherein the sequence of display elements are arranged along a circular menu displayed on the electronic display.
 3. The processor-implemented method of claim 1 wherein the sequence of display elements are arranged in a linear menu displayed on the electronic display.
 4. The processor-implemented method of claim 1 wherein the electronic display is centrally mounted on the body of the control device and the rotational input device is a rotatable ring around the periphery of the electronic display.
 5. The processor-implemented method of claim 1 wherein determining the angular movement depends on one or more measurements selected from a set of measurements including a displacement measurement, a velocity measurement, and an acceleration measurement associated with the rotational input device.
 6. The processor-implemented method of claim 1 wherein the one or more heuristics to variably assist with the scrolling movement of the sequence of display elements includes a heuristic that changes the rate of the scrolling movement of the sequence of display elements on the electronic display compared with the rate of the angular movement associated with the rotational user input.
 7. The processor-implemented method of claim 6 wherein the change in the rate of scrolling movement is increased when the sequence of display elements includes a larger sequence of display elements.
 8. The processor-implemented method of claim 6 wherein the change in the rate of scrolling movement is decreased when the sequence of display elements includes a shorter sequence of display elements.
 9. The processor-implemented method of claim 1 wherein the one or more heuristics to variably assist with the scrolling movement of the sequence of display elements includes a heuristic that creates an extended scrolling movement that continues to display additional display elements after the angular movement associated with the rotational user input has stopped.
 10. The processor-implemented method of claim 1 wherein the one or more heuristics to variably assist with the scrolling movement of the sequence of display elements includes a heuristic that increases a displacement covered by the scrolling movement of the sequence of display elements on the electronic display compared with a displacement associated with the angular movement from the rotational user input.
 11. The processor-implemented method of claim 1 wherein the one or more heuristics to variably assist with the scrolling movement of the sequence of display elements includes a heuristic that continues the scrolling movement of the sequence of display elements until at least one display element has been affirmatively identified on the electronic display.
 12. The processor-implemented method of claim 11 wherein a simulated indentation under a force of gravity coincident with each display element causes the scrolling movement of the sequence of display elements to affirmatively identify a specific display element rather than land in an area between two display elements from the sequence of display elements.
 13. The processor-implemented method of claim 1 wherein the rotational user input necessary to traverse the sequence of display elements may be selected from a set of rotational inputs including a quarter-revolution, a half-revolution, and a three-quarter revolution.
 14. A computer program product comprising instructions executable on a processor for processing a rotational input to a control device having an electronic display, the instructions tangibly embodied in a machine readable medium and operable to cause the processor to operate in accordance with the method of claim
 1. 15. A control device having an electronic display, comprising: a processing system associated with the control device adapted to process instructions and a rotational user input to a rotational input device associated with the control device; memory containing instructions when executed on the processing system, display on the electronic display associated with the control device at least a portion of an initial display element selected from a sequence of display elements, determine an angular movement from the rotational user input applied to the rotational input device associated with the control device, and apply one or more heuristics to variably assist with a scrolling movement of the sequence of display elements on the electronic display and reduce the rotational user input necessary to traverse the sequence of display elements.
 16. The control device of claim 15 wherein the one or more heuristics to variably assist with the scrolling movement of the sequence of display elements includes a heuristic that changes the rate of the scrolling movement of the sequence of display elements on the electronic display compared with the rate of the angular movement associated with the rotational user input.
 17. The control device of claim 15 wherein the one or more heuristics to variably assist with the scrolling movement of the sequence of display elements includes a heuristic that creates an extended scrolling movement that continues to display additional display elements after the angular movement associated with the rotational user input has stopped.
 18. The control device of claim 15 wherein the one or more heuristics to variably assist with the scrolling movement of the sequence of display elements includes a heuristic that increases a displacement covered by the scrolling movement of the sequence of display elements on the electronic display compared with a displacement associated with the angular movement from the rotational user input.
 19. The control device of claim 15 wherein the one or more heuristics to variably assist with the scrolling movement of the sequence of display elements includes a heuristic that continues the scrolling movement of the sequence of display elements until at least one display element has been affirmatively identified on the electronic display.
 20. The control device of claim 15 wherein a simulated indentation under a force of gravity coincident with each display element causes the scrolling movement of the sequence of display elements to affirmatively identify a specific display element rather than land in an area between two display elements from the sequence of display elements. 